import axios from 'axios'
import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'

// 创建axios实例(ajax)  和写axios一样
const mockAjax = axios.create({
  baseURL: '/mock', //基础路径
  timeout: 20000, //超时时间
})

// 添加请求拦截器
// 注意使用ajax发请求前缀改成ajax
mockAjax.interceptors.request.use(function (config) {
  // 请求成功执行的回调函数
  // config是包含请求相关所有信息的一个对象（请求报文）
  // 开启进度条
  Nprogress.start()
  return config
})

// 添加响应拦截器
mockAjax.interceptors.response.use(
  function (response) {
    // 响应成功执行的回调函数
    // response是响应对象所有信息组成的一个对象（响应报文)
    // 关闭进度
    Nprogress.done()
    return response.data
  },
  function (error) {
    if (error.response.status === 401) {
      alert('未授权')
    } else if (error.response.status === 403) {
      alert('禁止访问')
    } else if (error.response.status === 404) {
      alert('错误访问')
    } else if (error.response.status === 500) {
      alert('服务器出错')
    }
    return Promise.reject(error)
  }
)

//   对外暴露
export default mockAjax
